<template>
  <div class="wrapper">
    <v-header></v-header>
    <v-slider></v-slider>
    <div class="content-box" :class="{ 'content-collapse': collapse }">
      <v-tags></v-tags>
      <div class="content">
        <transition name="move" mode="out-in">
          <keep-alive :include="tagList">
            <router-view></router-view>
          </keep-alive>
        </transition>
        <el-backtop target=".content"></el-backtop>
      </div>
    </div>
  </div>
</template>

<script>
import vHeader from "./Header.vue";
import vSlider from "./Slider.vue";
import vTags from "./Tags.vue";
import bus from "./bus";

export default {
  data() {
    return {
      tagList: [],
      collapse: true,
    };
  },
  components: {
    vHeader,
    vSlider,
    vTags,
  },
  created() {
    bus.$on("collapse-content", (msg) => {
      this.collapse = msg;
    });

    // 只有在标签页列表里的页面才使用keep-alive，即关闭标签之后就不保存到内存中了。
    bus.$on("tags", (msg) => {
      let arr = [];
      for (let i = 0, len = msg.length; i < len; i++) {
        msg[i].name && arr.push(msg[i].name);
      }
      this.tagsList = arr;
    });
  },
};
</script>
